﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using GOAP.Entities;

namespace GOAP
{
    abstract class Action
    {
        public string name = "UnknownAction";
        //target node?

        protected Action()
        {

        }

        public abstract List<Action> getActions(World world, Entity ent);

        //Act for planning
        public abstract void goapAct(World world, Entity ent);

        //Act to use when running plan
        public abstract void Act(Entity ent);

        public abstract void print();

        virtual public void copyMembers(Action copy)
        {
            //Copy Entity data to the copy
            copy.name = name;
        }

        public abstract Action clone(); 
    }
}
